package com.cloud.sysmana.ser;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.multipart.MultipartFile;

import com.cloud.sysmana.entity.SysFunc;
import com.cloud.sysmana.entity.SysRole;
import com.cloud.util.base.RetType;

/**
 * 系统功能Service
 * @author gaof
 * @date 2016年4月17日
 */
public interface ISysFuncService {

	/* =================资源类型===================== */
	/** 模块资源1 */
	public final static String FUNC_TYPE_MODULE = "1";
	/** 菜单资源2 */
	public final static String FUNC_TYPE_MNEU = "2";
	/** 按钮、链接资源3 */
	public final static String FUNC_TYPE_LINK = "3";
	/** 后台资源4 */
	public final static String FUNC_TYPE_BACK = "4";

	/* =================访问类型===================== */
	/** 公共访问1 */
	public final static String FUNC_ACCE_TYPE_PUB = "1";
	/** 授权访问2 */
	public final static String FUNC_ACCE_TYPE_PRI = "2";
	
	/**
	 * 添加系统功能
	 * @param func
	 * @return
	 */
	public RetType addOrUpdateFunc(SysFunc func);

	/**
	 * 获得功能菜单Json数据
	 * @return
	 */
	public String listFuncTreeJson();

	/**
	 * 删除功能菜单及子功能
	 * @param func
	 * @return
	 */
	public void delLinkFunc(SysFunc func);

	/**
	 * 获取功能岗位Json数据
	 * @param role 
	 * @return
	 */
	public String listRoleTreeJson(SysRole role);

	/**
	 * 功能导出
	 * @param request
	 * @param response
	 * @param exportId
	 */
	public void funcOutput(HttpServletRequest request,
			HttpServletResponse response, String exportId);

	/**
	 * 功能导入
	 * @param request
	 * @param file
	 * @param importId 
	 */
	public void funcImput(HttpServletRequest request, MultipartFile[] file, String importId);

}
